package com.example.springboot.config.springlistener;

import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 这是整个spring容器在刷新之前初始化ConfigurableApplicationContext的回调接口，
 * 简单来说，就是在容器刷新之前调用此类的initialize方法。这个点允许被用户自己扩展。用户可以在整个spring容器还没被初始化之前做一些事情。
 *
 * @Date: 2023/5/18 21:20
 */
public class OwnApplicationContextInitializer implements ApplicationContextInitializer {
    /**
     * 1 在启动类中用springApplication.addInitializers(new TestApplicationContextInitializer())语句加入
     * 2 配置文件配置context.initializer.classes=com.example.springboot.config.springlistener.MyApplicationContextInitializer
     * 3 Spring SPI扩展，在spring.factories中加入org.springframework.context.ApplicationContextInitializer=com.example.demo.TestApplicationContextInitializer
     * @param applicationContext
     */
    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
        System.out.println("1 MyApplicationContextInitializer 初始化了");
    }
}
